home *** CD-ROM | disk | FTP | other *** search
/ Risc World 3 / Risc World 3.iso / SOFTWARE / ISSUE6 / PD / PDF / GuiLib / Util / c++ / UCompare < prev   
Text File  |  2003-02-14  |  3KB  |  84 lines

  1. //--------------------------------------------------------------------------
  2. //
  3. //   Copyright (c) 2002, Colin Granville
  4. //
  5. //   All rights reserved.
  6. //
  7. //   Redistribution and use in source and binary forms, with or
  8. //   without modification, are permitted provided that the following 
  9. //   conditions are met:
  10. //
  11. //      * Redistributions of source code must retain the above copyright 
  12. //        notice, this list of conditions and the following disclaimer.
  13. //
  14. //      * Redistributions in binary form must reproduce the above 
  15. //        copyright notice, this list of conditions and the following 
  16. //        disclaimer in the documentation and/or other materials 
  17. //        provided with the distribution.
  18. //
  19. //      * The name Colin Granville may not be used to endorse or promote 
  20. //        products derived from this software without specific prior 
  21. //        written permission.
  22. //
  23. //   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
  24. //   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
  25. //   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
  26. //   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
  27. //   COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
  28. //   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
  29. //   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
  30. //   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
  31. //   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
  32. //   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
  33. //   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
  34. //   OF THE POSSIBILITY OF SUCH DAMAGE.
  35. //
  36. //--------------------------------------------------------------------------
  37.  
  38. #include <ctype.h>
  39. #include "ucompare.h"
  40.  
  41. int uCompare(const char* s1,const char* s2)
  42. {
  43.   char a,b;
  44.   do  {
  45.       a=toupper(*s1++);
  46.       b=toupper(*s2++);
  47.       }while (a==b && a!=0);
  48.  
  49.   return a-b;
  50. }
  51.  
  52. //*****************************************************************
  53.  
  54. int uStartsWith(const char* s,const char* find_string)
  55. {
  56.   char a,b;
  57.   do  {
  58.       a=toupper(*s++);
  59.       b=toupper(*find_string++);
  60.       }while (a==b && a!=0);
  61.  
  62.   return b==0;
  63. }
  64.  
  65. //*****************************************************************
  66.  
  67. const char* uFind(const char* buf, const char*findstring)
  68. {
  69.   char a,b=toupper(*findstring);
  70.   for (;a=toupper(*buf),a;buf++)
  71.   {
  72.     if (a==b && uStartsWith(buf,findstring)) return buf;
  73.   }
  74.   return 0;
  75. }
  76.  
  77. //*****************************************************************
  78.  
  79. const char* skipWS(const char* s)
  80. {
  81.   while(*s==' ') s++;
  82.   return s;
  83. }
  84.